﻿using System;

namespace Google.Translates.WebService.TranslateParmas
{
    public class DbUpdateParma
    {
        /// <summary>
        /// 需要進行 Translate 的文字段落
        /// 當前屬性會映射到Database
        /// </summary>
        public string SourceText { get; set; }

        /// <summary>
        /// 指定的文字段落源言語,為空時,進行言語的自動檢測,在Translate完成後把檢測到言語編號記錄到這裡
        /// </summary>
        public string SourceLanguageCode { get; set; }

        /// <summary>
        /// 目的語言編碼
        /// </summary>
        public string TargetLanguageCode { get; set; }

        /// <summary>
        /// Google Translate API 成功翻譯後, 返回的結果(翻譯成目的語言的文字段落)
        /// 當前屬性會映射到Database
        /// </summary>
        public string TranslateText { get; set; }
 
        /// <summary>
        /// 對應的Target Database 別名
        /// 當前屬性會映射到Database
        /// </summary>
        public string DbAlias { get; set; }
        /// <summary>
        /// 向Google Translate API 發出請求的超時時間, 單位是毫秒(MS)
        /// </summary>
        public int TranslateTimeout { get; set; }
        /// <summary>
        /// 向 Target Database 執行Sql Script的超時時間, 單位是毫秒(MS)
        /// 如果Timeout的時間設置得比較長,那就不能在Web Service上進行, 只能在 Winform Application 監聽下,運行
        /// 當前屬性會映射到Database
        /// </summary>
        
        public int DbExecSqlTimeout { get; set; }
        /// <summary>
        /// Task 執行的優先順序, 同一個級別, 就以CreateDate 較小的先執行
        /// 當前屬性會映射到Database
        /// </summary>
        
        public int Priority { get; set; }
        /// <summary>
        /// 可以嘗試執行Task的次數上限
        /// 只有Task在執行不成功的情況下, 才會反復嘗試執行
        /// 當前屬性會映射到Database
        /// </summary>
        public int RunTimesLimit { get; set; }

        /// <summary>
        /// 需要執行的存儲過程名稱
        /// 在這個WebService沒有必要加入 Db update 有業務邏輯,具體的業務邏輯由 Target Database 自己定義存儲過程來完成
        /// 當前屬性會映射到Database
        /// </summary>
        public string ProcedureName { get; set; }
        /// <summary>
        /// 需要執行的存儲過程參數
        /// 多個參數以指定的分隔符號進行劃分
        /// 當前屬性會映射到Database
        /// </summary>
        public string ProcedureParmasString { get; set; }

        /// <summary>
        /// Target Database 所在地區,所用的時區信息
        /// 範圍是-12到+12之間
        /// 當前屬性會映射到Database
        /// </summary>
        public int TimeZoneValue { get; set; }
        
        /// <summary>
        /// 可以執行時間範圍的起始值,如果為空,就為看作00:00:00
        /// 格式為HH:mm:ss
        /// 當前屬性會映射到Database
        /// </summary>
        public string RunableStartTimeString { get; set; }
        
        /// <summary>
        /// 可以執行時間,如果為空,就為看作23:59:59
        /// 格式為HH:mm:ss
        /// 如果RunableStartTimeString與RunableEndTimeString都為空,那就等同於"00:00:00 - 23:59:59"全天有效
        /// 當前屬性會映射到Database
        /// </summary>
        public string RunableEndTimeString { get; set; }
    }
}
